home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Aminet 1 (Walnut Creek)
/
Aminet - June 1993 [Walnut Creek].iso
/
ab20
/
datacomm
/
vlt_5045.lzh
/
docs
/
VLT5p034.doc
< prev
Wrap
Text File
|
1991-02-06
|
31KB
|
636 lines
+----------------------------------------------------------------------+
| |
| D I S C L A I M E R N O T I C E |
| |
| This document and/or portions of the material and data furnished |
| herewith, was developed under sponsorship of the U.S. Government. |
| Neither the U.S. nor the U.S.D.O.E., nor the Leland Stanford |
| Junior University, nor their employees, nor their respective con- |
| tractors, subcontractors, or their employees, makes any warranty, |
| express or implied, or assumes any liability or responsibility for |
| accuracy, completeness or usefulness of any information, appara- |
| tus, product or process disclosed, or represents that its use will |
| not infringe privately-owned rights. Mention of any product, its |
| manufacturer, or suppliers shall not, nor is it intended to, imply |
| approval, disapproval, or fitness for any particular use. The U.S. |
| and the University at all times retain the right to use and dis- |
| seminate same for any purpose whatsoever. |
| |
+----------------------------------------------------------------------+
Tektronix is a trademark of Tektronix, Inc.
VT100 is a trademark of Digital Equipment Corporation.
VLT 5.034 Additional Documentation
==================================
(C) Copyright 1989, 1990, 1991
by
W.G.J. Langeveld
Stanford Linear Accelerator Center
Introduction
============
All in all a lot of things changed in this version. Unfortunately,
it is too much to be described in terms of a "manual update" (as in
"change page so-and-so to say such-and-such") so intead I will revert to
the more traditional "changes" file. This file assumes you have the SLAC
report 370 and only discusses additions and modifications since VLT version
4.846. Hopefully, the manual will be updated sometime this summer.
Willy Langeveld, 6 February 1991.
Serial Device Handling
======================
Speed
-----
The way VLT handles reading and writing of the serial device has
been changed quite a bit. Reading the serial device has been optimized
somewhat, but writing to the serial device is now double buffered. This
should speed up file transfers using XPR's considerably. Particularly
windowed transfers such as XPRzmodem should show great improvement.
Menu options
------------
There are some new menu options in the Comm menu, and other have
been rearranged. Among other things, VLT now supports transfer speeds up
to 57.6 kbaud. "Reset" is a new menu option. It resets the serial device
to the current settings, bringing it back from whichever state it was in.
Normally this should not cause a disconnect from the host, but some modems
are a little picky (though they usually can be set to ignore short drops
of DTR). The "Close Device" option allows closing the serial device.
The script command "serialdevice" has acquired an equivalent option:
serialdevice none.
Error checking
--------------
There are new menu options to specify which serial device errors VLT
should check for; previously, VLT always ignored all errors. Now, when VLT
detects an error (and it is checked in the menu) it will post a message to
that effect, and when the error is a read error, VLT will flush whatever
else the serial device may think it has received. In case of a write error,
VLT will only notify you of that fact.
Xon/Xoff handling
-----------------
Note that these errors are checked for in addition to the "spurious
Xoff" checking. If you suffer from line noise, you may have found yourself
more than once in the situation where one of the noise characters being sent
to your Amiga is an "Xoff" character. Normally, this character is sent by
the host to indicate that the Amiga should stop sending data. When your
Amiga tries anyway, you are put on hold, until such a time as the host has
time for you and sends you an Xon. Now, if such an Xoff character is due
to noise on the line, it is obviously very unlikely that you will ever
see a matching Xon. In that case, VLT used to put up a message like:
"Serial Port Busy, type ctrl-Q to reset". This is no longer the case.
Instead, when VLT thinks a particular write to the serial device
is taking too long, you may now see a nice little requester in the top left
corner, which says something like: "Temporarily unable to send data.
Waiting...". If the serial device becomes "unstuck", the requester will go
away by itself. If the wait takes too long, feel free to click on Retry or
Reset. Retry causes the timer to be restarted, and if the device is still
stuck, the requester will reappear - this is safe, no data will be lost. If
you click on Reset, the serial device will be physically reset, just like
with the new Reset option in the menu. This can potentially loose data,
though data that you were about to send is sent again after the reset.
You may see this requester more than you saw the previous message, because
the timer setting is much closer to what the time really should be. However,
as I said, in cases of legitimate Xoff's sent by the host, the situation
will clear itself up now rather than aborting the write, so overall things
should be much better. As a test I have sent a file at Midi speed from my
A3000 to my A2000 using ZMODEM. My 2000 doesn't take kindly to that
high a rate, but the file did arrive completely intact despite lots of
requesters popping up and going away (flow control was enabled). With
CTS/RTS handshaking, the timeout is 10 times as long as with just
regular flow control. Since the minimum timeout for any send is 1 second
for normal flow control, it is 10 seconds for CTS/RTS. The reason there is
a timer for CTS/RTS is that I have noticed that it is entirely possible to
lock up the serial port also with CTS/RTS, given a properly misbehaving
modem (despite claims to the contrary).
New Script Commands and Options
===============================
Syntax enhancements, uninterruptable scripts
--------------------------------------------
A convention was added to allow scripts to survive "cancel all" or
the escape key. If the first label in a script starts with $, the script
can not be cancelled, unless specified by name. This is handy when you want
to cancel all scripts except the cursor blinker, and perhaps other scripts
that are well debugged.
A new syntax is now allowed to prevent VLT's script parser from
parsing too much. One can now use >> or }} or ]] or )) as a "universal"
quote: everything from there on to the end of the line (including any
"comments"!) is taken as part of the string. This makes it easier to blindly
send the contents of files to VLT for example.
Example:
address VLT "send >>"any_random_string
New miscflags
-------------
There are a few new "miscflags". Since the previous version had
only one, we list the complete set here:
Bit 0 ("1") This bit is as before for padded clip support. When
set, clips saved from the review buffer will be
padded to an even number of bytes. This is the IFF
documented way, but some editors and utilities can't
handle it.
Bit 1 ("2") When set, VLT's screen will not be updated with any
data, whether it comes from the serial device or
elsewhere.
Bit 2 ("4") When set, VLT will not display any message windows
(including the file transfer status window).
Bit 3 ("8") When set, VLT opens the serial port in shared
mode. Note, that you must cause the serial port to
be reopened before this takes effect. This can be
accomplished with the "reset" menu option or with the
Hangup option or script command.
Bit 4 ("16") When displaying the cross hairs in Tektronix mode, the
mouse pointer normally changes to a "target box". This
bit, when set, turns this off and only the cross hairs
are displayed.
Bit 5 ("32") This bit causes capture to a file to be unbuffered.
This works well with some pipes. But see Fifo support!
WEDGE command change
--------------------
The WEDGE command has been changed. It now has an additional number
it sends out to the port specified, IADDRESS. So the message the receiving
port gets now is of the form:
KEYSTROKE <code> <qualifier> <iaddress> <character>
For technical reasons the fix could not be made backwards compatible.
A fixed version of Intercept.vlt is supplied. Also, I have put together
two other interesting examples: MarginBell.vlt and AutoWrap.vlt.
New command: WINDOW
-------------------
There is a new script command: WINDOW, which allows you to size
VLT's main window. The syntax is
WINDOW <leftedge> <topedge> <width> <height>
All arguments are optional. Specifying 0 for width and/or height will cause
the window to open to the right and/or bottom edge of the physical display.
Missing arguments default to 0, but the arguments must be given in this
order (so you can't leave out <leftedge> if you need to specify <topedge>).
Sanity checking is only done when the window is already open. If the window
size is set with the window closed, subsequent opening of the window may
fail if the sizes are not possible and a retry will most likely use a 640 x
200 size. The settings are *not* preserved in the config file: I consider
this undesirable (you try to save some other setting and wind up with a
funny window size too next time you run it). But the size *is* remembered
if you close the window and reopen it, or when you go to a custom screen
and back to the Workbench (during the same session). To start up VLT with a
particular size window, you can use something like this:
1> run VLT -b +c "window 0 10; activate v"
The -b causes the window to stay closed, and the +c is run, which
first sets the window size and then opens the window. Of course, you can
also use equivalent tooltypes when running from the Workbench or put
this in a vlt.init. See later about the tool types.
More programmable function keys
-------------------------------
As noted elsewhere, the alt-ed and shift-alt-ed keypad and cursor
keys can now be programmed. The script command "Function" was extended to
allow programming these. The following is the sequence:
ALT SHIFT ALT
F 81 keypad 0 F 105
F 82 keypad 1 F 106
F 83 keypad 2 F 107
F 84 keypad 3 F 108
F 85 keypad 4 F 109
F 86 keypad 5 F 110
F 87 keypad 6 F 111
F 88 keypad 7 F 112
F 89 keypad 8 F 113
F 90 keypad 9 F 114
F 91 keypad Enter F 115
F 92 keypad - F 116
F 93 keypad ( F 117
F 94 keypad ) F 118
F 95 keypad / F 119
F 96 keypad * F 120
F 97 keypad + or help key F 121
F 98 keypad . F 122
F 99 up arrow F 123
F 100 down arrow F 124
F 101 right arrow F 125
F 102 left arrow F 126
F 103 reserved F 127
F 104 reserved F 128
New: Tektronix script commands
------------------------------
Yes! There are finally script commands for the graphics part of
VLT. There are script options for saving iff, postscript, binary and
command files, and for printing bitmaps. Also, there are commands for
zooming and panning. The syntaxes are:
TEKtronix SAVEas {ILBM <filename> | POStscript <filename> |
BINary [<filename>] | COMmand <filename> }
TEKtronix PRINT {MAXimum | SMALL | MEDIUM | FULL | LARGE}
These commands do pretty much what the equivalent menu options do. The
file name for SAVE BINARY is optional: the current display is saved to
the same file as opened in a previous attempt, overwriting its contents.
TEKtronix ZOOM [x1 [y1 [x2 [y2]]]]
TEKtronix PAN [x1 [y1 [x2 [y2]]]]
The zoom and pan features are especially nice when used in combination with
the new programmable alt-ed and shift-alted cursor keys. For zoom, the
coordinates specify the box (in screen coordinates) to zoom in on. If x2
and/or y2 are missing they are set to x1 and/or y1. If x1 and/or y1 are
missing, they are set to zero. If the size of the box is zero (as in just
ZOOM, no arguments), the action will be to zoom out to the full size. For
pan, the coordinates represent a starting point and an ending point. The pan
is made such that the ending point will wind up (if possible) in the same
location as the starting point was before the pan. Again, the coordinates
are in pixels.
VLT to Provector translation
----------------------------
There are in fact more script commands. For example, there is a
Tektronix MOVE and a Tektronix DRAW. Since these commands are very much a
representation of the internal workings of the Tektronix emulator, they will
not be documented at this time (some of them are quite strange). They are of
interest mostly because there is a new menu option in the Tektronix part of
VLT that allows you to write out the current graphics display as a VLT
command file. An ARexx file called VLT2Provec.pvrx is provided that can
translate VLT's commands into Provector ARexx instructions. Not everything
VLT does is supported, but the most usual things (lines, colors, fills) are.
Start it from Provector using Rexxecute. A requester will come up asking
you for the VLT file name to import into Provector.
By reading VLT2Provec.pvrx, you can pretty much figure out how
these VLT Tek commands work. But don't expect the syntax to be cast in
concrete! Note also that these files can be rather lengthy.
Simple IF command
-----------------
There now exists a simple "IF" command in the script language.
Implemented are:
IF TEKtronix "set of commands to run"
IF VT100 "set of commands to run"
If the condition is met, the set of commands is executed as if a "Schedule"
command was used. If the condition is not met, then nothing happens, and no
error is returned. This command comes in handy when you want to program
the alt-ed cursor keys to do something different in Tek mode and in
VT100 mode.
Other items
-----------
In general, the script scheduler was made a little smarter about
handling lots of scripts at the same time.
As described previously, there is a new option to the
"serialdevice" command: "none". It closes the current device.
Two other script commands are: fifo on/off and displaylfascrlf
on/off. See the next section.
Another new script command is CheckSerialError with syntax:
CHeckserialerror { SERialdevicebusy | BAUdratemismatch |
LINeerror | PARityerror | BUFferoverflow |
NODsr | BREakreceived | ON | OFF |
DECimal <error mask> }
Any number of the options may be used in the same call. The particular
error checking options will be switched on or off depending on the
current default of the on/off switch. For example to switch Line-error
and NoDSR checking on while switching Parity error checking off, the
command might be:
checkserialerror on line nodsr off parity
The "Decimal" option can be used in conjunction with the Extract command
for checkserialerror. The extract command returns a bit mask of the errors
being checked for. A bitmask in the identical format can be used in the
checkserialerror command using the "decimal" option.
FIFO Pipes. How to Use VLT as a BBS
===================================
Fifo pipes
----------
VLT now supports local as well as remote Fifo pipes. You need Matt
Dillon's fifo.library and fifo-handler for this. This makes it very
easy to write a BBS in ARexx with VLT as the engine. A sample BBS is
included as FifoBBS.rexx.
VLT has two kinds of pipes, local and remote. The local pipes
are called <VLT-name>L and the remote pipes are called <VLT-name>R. Since
VLT by default is called "VLT", the default pipe names are VLTL and VLTR.
The local pipes go from VLT's "keyboard" (any text VLT sends out) to the
receiver and from the sender to VLT's screen. The remote pipes go from the
sender to the serial-device on to the host, while anything coming in from
the host is routed through the pipe to the receiver.
In order to get this to work, you have to do the following.
1. Install the fifo stuff (see fifodev2.lzh in BIX listings)
2. mount fifo:
Play with the "remcli" program that comes with the Fifo distribution
and make sure it works. You now have a good idea of what follows:
3. newcli fifo:VLTL/rwkecs
You can use newwsh or whatever instead of newcli.
4. run VLT
5. Set VLT to no echo, close the serial device,
set the "Display LF as CR/LF" option on. This is
a new option in the Operation menu, that causes
incoming linefeeds to be displayed as returns plus
linefeeds, just like the Amiga console does.
6. Switch the VLT pipes on. For this purpose, VLT has
a new menu option: "Fifo Pipes" in the VLT menu.
7. You should see the cli/shell prompt on VLT's screen.
Type any command, such as dir, cd, info, avail etc.
You should see the response on VLT's screen.
Previewing Tektronix files
--------------------------
VLT now basically acts the same way "remcli" does. Is this useful?
Sure is: if you have some Tektronix files lying around, just type them (if
you're using VLT, not VLTjr, and if you have switched "Graphics Lock" off).
You can use VLT very easily to preview any Tektronix files that way. But
wait! There's more!
8. If you have two Amigas, hook the serial ports
up using a null modem. Repeat the above procedure
on the remote Amiga, except: use VLTR (remote)
in step 3.
9. Now, run a "normal" VLT on the local Amiga,
but use no echo, and "Display LF as CR/LF".
10. You should now see the CLI prompt on your
local Amiga, but the CLI runs on the remote Amiga!
Voila, instant access to your remote Amiga using one screen and one
keyboard!
VLT as a BBS
------------
Of course, it is a little dangerous to let just anyone log onto your
system when it is set up like this, because they can just type "Format
DH0:....", so I wrote a little BBS program. It is called FifoBBS.rexx.
It pretty much installs itself. All you need to do is create
a single directory somewhere and assign FifoBBS: to it. FifoBBS does the
rest, as is described in the header of FifoBBS.rexx.
11. Instead of step 3, run FifoBBS with either "remote" or
"local" as an argument.
The REMOTE argument is used if you want it to be a real BBS, i.e.
people dial in from the outside. The LOCAL argument is used if you just want
to log in to the BBS from the Amiga it is running on. Note, that if you omit
the argument, it will run in the current CLI, without either VLT or "remcli"
being active.
There will be one account when FifoBBS is run the first time, that
of SYSOP. Hit return to get to the FifoBBS Username: prompt. Log in as
SYSOP and change your password. When you are logged on, type a return to
see the list of supported commands. The ones with an asterisk are
"SYSOP-only". Now, log on as someone else. Follow the instructions: log on
as NEW, and register. Then try logging on again: you will find that you are
not yet validated. Log on as SYSOP, and use the VALIDATE command to change
the access code of the new user from 2 to 3. The new user can now log on
but does not have access to the commands with a * in front of them.
However, as SYSOP (or if you have access code 5 or larger) you can use the
"SYSTEM" command. This will bring you to a $ prompt, from which you can
type any system comamnd (dir, cd, list, info, avail, anything that produces
text output). You can even run Ed! (Under AmigaDOS 2.0 with the WINDOW *
and WIDTH and HEIGHT settings). There are some programs (like More) that
"should" work but don't. You can type "RETURN" to get back into the BBS
system.
FifoBBS currently has a single listings section, a single
message section, and private mail between everybody. It detects the
"NO CARRIER" string sent by the modem, and if present will log the
current user off, so that a next user can't intrude on someone elses
account.
Other New Features
==================
Local printing
--------------
The escape sequences <csi>5i and <csi>4i are now supported. All
incoming characters are redirected to "prt:" between the two, in accordance
with the VT220 standard. The display is not updated during that time. The
feature is cancelled by the "CLear" option of the Screen menu and by any
option that closes the serial device.
Smooth Scroll
-------------
The Amount of Prescroll menu option was renamed to "Scrolling
Speed". One can now set prescroll numbers that are negative. Negative
prescroll settings cause a smooth scroll of that amount of pixels at a time.
Note that even numbers work better on interlaced screens.
Transfer status window
----------------------
The transfer status window has finally acquired some gadgets. It now
also listens to the escape key (but VLT's main window no longer does for
file transfers). It activates itself, and it should all around be better.
When a transfer is complete, a character typed in the status window causes
the window to close. The character is sent on to the host (this is just like
it used to be, except that the window now can be active at the time). When
VLT's main window is not active, the transfer window will not activate
either. This allows background uploads without the active window being
pulled out from under you. Also there is now a gadget that is always
accessible (though it may take till the end of the current packet being
transferred) that puts VLT behind all other screens or windows, and brings
the Workbench to the front. There are two other gadgets, "Cancel File" and
"Cancel All". The latter just attempts to shut down any and all transfers
as soon as possible. The "Cancel File" button signals that only the
current file should be aborted in a multi-file transfer. Only the upcoming
release of XPRKermit supports this feature at this time.
Fonts
-----
You can now select your favorite font from a menu option in the
Screen menu. It must exist in both 8 and 11 point tall, and it must be
monospaced and the width must be 8 points. VLT checks these attributes and
won't change the fonts if it doesn't conform. This now removes the
requirement of having to use SetFont or FF to use a different font in VLT.
ToolTypes
---------
You can now add tool types to VLT's icons and script icons for
all the command line options. A few examples:
CLI | ToolType
----------------------------------+-------------------
-i | -i
+s pty.device | +s=pty.device
+c "send (foo); emit (foo)" | +c=send (foo); emit (foo)
<script-name> | +=<script-name>
etc. | etc.
Note in particular the lack of quotes in the "+c" Tooltype example and
the "+=" in the scriptname example. Compare also page 12-15 of the manual.
In case multiple script files are used using extended selection, the
tooltypes of the *first* selected script icon are used.
Keypad and cursor keys
----------------------
All "ALT"-ed keypad keys are now programmable. However, for the
programs to take effect, the keypad must be in "application" mode, not
numeric.
All "ALT"-ed cursor keys are now programmable. These are not
dependend on any menu options.
Similarly, All "SHIFT-ALT"-ed keypad and cursor keys are
programmable.
Console string
--------------
In program mode, when you select the Open Console menu item, you
can specify the string you'd like to use for the console. No more need to
patch the VLT executable to replace CON: by CNC:.
Other changes and additions
===========================
- VLT's version string is now 2.0 compatible. You can use the "version"
command on the VLT executable (under 2.0).
- The review.library is probably a little faster in scrolling than
the previous one. Otherwise no changes.
- The Review Edit/Send command has now some delays built in in order to
improve legibility when using with packet nets.
- With the "Wrap" option in the Operation menu set to on, you can now
wrap back to the end of the previous line when using arrow keys and/or
backspace. I'm not sure that this is entirely compatible with the
VT100 spec but it sure seems nice.
- The Interlace setting now only affects VLT on its custom screen. I.e.,
if you switch from an interlaced custom screen to a non-interlaced
Workbench and back, the screen will be interlaced. It used to acquire
the interlace setting of the Workbench.
- All known XPR protocols are now added as "External" options to the
menu. They are not explicitly supported like XMODEM and Kermit, but
at least you can select them straight from the menu.
- The menu item texts now conform to the new Commodore style guide.
This means that ... after a menu option means that selecting the
option causes a window or requester to open up. Similarly, a » at the
right edge of the menu box means that there is a submenu attached
to that item. Also, since some menus are getting quite long, some options
are now grouped using separating bars of dashes. VLT now has over 200
menu options.
- The screen title (not to be confused with the screenshare name!) and
window title (when on the Workbench) are now the same as the screenshare
name (which is usually also the same as the ARexx port name). This helps
in recognizing different VLT sessions on the same machine.
- All new settings have been added to the Extract facility. There is a
new extracttest.rexx.
- A new menu option is "Display LF as CR/LF". This is needed because of
the pipes described above: when you connect to another Amiga, you usually
get linefeeds as line terminators. This option makes sure that VLT gets a
return as well. The corresponding script command is displaylfascrlf.
- All error messages that appear during the startup of VLT are now displayed
for at least a second, to give you time to read them.
- The handshake menu is a little more descriptive.
Bugfixes
========
The following bugs and problems were fixed.
- Some traps that were already removed could still be accessed.
- VLT read location zero, when cancelling schedules without labels.
- VLT read location zero in the code for adding traps.
- The ZMODEM incredible shrinking window problem.
- Ctrl-C's could cause problems in the console window.
- <esc>[0m? now properly resets the background color as well.
- <esc>c handling has a few more safeguards.
- xpr_fread, xpr_fwrite can now handle buffers larger than 32k.
One should now be able to set xprzmodem buffer size to larger than 32.
(in fact, all xpr... support routines are now "32-bit safe").
- The "cancel' option in the review buffer "overwrite/append/cancel"
requester used to "overwrite" rather than "cancel"
- In color mode, it was possible that during a scroll too much real
estate was scrolled away.
- Turns out XPRHostMon never really worked too well.
- There was a bug in the VT100 new-line mode.
- ON commands could have their actions stack up indefinitely in some cases.
ON's now work much more like traps (internally).
- Doing a "wait" inside an "on" (which is nonsense anyway) is now disabled
(would have caused trouble before) and will generate an error.
- Goto, on, wait, trap, schedule, exit, pause, continue, cancel, and delay
underwent changes in the process of fixing ON.
- Any bugs with the User Menu should be fixed now.
- A reported bug with xpr_sread timing out and not returning a partially
completed read should be fixed (if it really was broken...).
- VLT would allow you to set funny break times. Also, a bug could
cause a funny time to be saved to the configuration file. The range of
times is now restricted to 10 msec to 3 seconds. If a funny time is
read in from the config file, it is reset to the default.
- All requesters now come up on the visible part of the screen,
even of the screen is autoscroll and not currently in its default
position.
- The "activate VT100" script command now activates the main window
as it should.
- VLT used to be incapable of opening a new serial device, if the previous
attempt at opening a device failed.
- If someone doesn't have a rexx: assignment, VLT will quietly look
in s: instead.
- The Edit/Send option had the undesired capability of getting the order of
the selected lines confused.
- A small bug in XPR support was fixed: one of them had to do with a
possible change in xprzmodem to prevent the the **B0 characters
appearing on your screen when XPRzmodem started an automatic download.
However, afterwards, the change in xprzmodem was deemed to be too
dangerous, so the fixed bug in VLT will not result in any visible
changes.
- A crash was found during xprzmodem downloads when the date command
is used to change the date back some 10 days or so. This bug is in
xprzmodem and is not immediately fixable. It falls in the category
of "It hurts when I do this"/"Then don't do that"...
- In Tektronix mode, an error message is now displayed when the user
tries to print the bitmap or save an IFF when on the Workbench.
- A very old bug was pointed out to me recently: the block cursor didn't
line up with the font some of the time and was one pixel higher than
the user set it. This is now fixed. For those with a 1 pixel cursor, it
now really *is* one pixel and it looks thinner.
- A scrolling problem was fixed when prescroll was set to a number that was
larger than the number of lines fitting in the window. This would
typically show up as text in the title bar of the VLT window when on the
Workbench when the window was really small vertically.
The end...